import { createApp } from "vue"
import App from "./App.vue"
// reset style sheet
import "@/styles/reset.scss"
// CSS common style sheet
import "@/styles/common.scss"
// iconfont css
import "@/assets/iconfont/iconfont.scss"
// font css
import "@/assets/fonts/font.scss"
// element css
import "element-plus/dist/index.css"
// element dark css
import "element-plus/theme-chalk/dark/css-vars.css"
// element blue css
import "@/styles/element-blue.scss"
// custom element dark css
import "@/styles/element-dark.scss"
// custom element css
import "@/styles/element.scss"
// svg icons
import "virtual:svg-icons-register"
// element plus
import ElementPlus from "element-plus"
// element icons
import * as Icons from "@element-plus/icons-vue"
// custom directives
import directives from "@/directives/index"
// vue Router
import router from "@/routers"
// pinia store
import pinia from "@/stores"
// errorHandler
import errorHandler from "@/utils/errorHandler"
// 右键菜单 viteconfig配置
import Vue3Menus from "vue3-menus"

const app = createApp(App)

app.config.errorHandler = errorHandler

// register the element Icons component
Object.keys(Icons).forEach((key) => {
  app.component(key, Icons[key as keyof typeof Icons])
})

app.use(ElementPlus)
app.use(directives)
app.use(router)
app.use(pinia)
app.mount("#app")
